home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 18 / Mac Magazin and MacEasy Magazine CD - Issue 18.iso / Spiele & Edutainment / Marathon Goodies / Mia 1.0b19ƒ / Mia Docs < prev   
Text File  |  1995-12-11  |  23KB  |  197 lines

  1. MIA -- Marathon Interactive Augmentor
  2.  
  3. Software by Dan Walkowski (walkowsk@taurus.apple.com)  (aka: Ombra)
  4. Documentation by Brian Roddy (roddy@taurus.apple.com)  (aka: Morpheus) and Dan
  5.  
  6. Note that Mia has always been a 'fat binary', running native on Macs and PowerMacs.
  7.  
  8. Mia 1.0 is MiaWare!
  9. If you like this software, send something for the real Mia (my girlfriend).  A postcard from your city, a nice email message, some chocolate, practically anything is acceptable.  Since the software is named after her, I thought it would be nice for her to see how many people appreciate it and use it.
  10. Send all gifts for Mia to:
  11.         Dan Walkowski
  12.         Apple Computer
  13.         Two Infinite Loop, M/S 302-2LF
  14.         Cupertino, CA  95014
  15.  
  16. Also:
  17. If you make any good maps with it, send me a copy. :-)
  18.  
  19. Special Apology:
  20. I regret that a serious bug was left in version 1.0b13 that could cause the scrambling of map files that contained more than one level.  I sincerely apologize for any inconvenience this may have caused.  It was a simple typo that, unfortunately, compiled and ran.  This bug has of course been fixed in this version.
  21.  
  22. Changes in 1.0b18:
  23. •IMPORTANT! Fixed a bug that could cause the creation of zero-sized polygons on 68K, causing the infamous "error type 4" bug for certain maps.  This should never happen again.
  24. •You can now re-center the entire map by holding command-shift and clicking, with the selection tool, where you'd like the origin to be.
  25. •The palettes now support the use of the tab and shift-tab keys to move between fields.
  26. •All palette fields should now accept exactly, and only, the characters that ought to be allowed for a field of that type.
  27.  
  28. Changes in 1.0b17:
  29. •Fixed a bug when deleting bad (concave) polygons
  30.  
  31. Changes in version 1.0b16:
  32. •Delete polygons.
  33. •Add and delete vertices from existing polygons, using the option and control keys.
  34. •Snap to grid.
  35. •Improved Side Magic, renamed Big Magic.  It now verifies and corrects many different things.
  36. •Sign your creations!  Use the Author Name field in the Level Info palette.
  37. •Selected polygon shows its vertices.
  38. •Faster selection and dragging.
  39. •Move polygons while creating them by holding the shift key.
  40. •Many bugs fixed, including the file scrambling bug and some 68K-specific bugs.
  41.  
  42. Changes in version 1.0b13:
  43. •Polygon addition!  Any size, rotation and number of sides with a single click!
  44. •Polygon manipulation!  Snap polygons together and apart like legos!
  45. •Make Maps from scratch in minutes!
  46. •Side Magic, makes sure all your sides and textures are correct and consistent.
  47. •Should have no trouble with Pforte maps now.
  48. •Improved cut/copy/paste of levels between files.
  49. •Skads of bugs fixed.
  50.  
  51. Changes in version 0.9: 
  52. •No more 'Apply' buttons!
  53. •Platform addition/deletion/editing.  (See important note below)
  54. •Lightsource addition/deletion/editing.
  55. •Much improved drawing/dragging code.
  56. •Selection of polygons underneath other polygons by command-clicking.
  57.  
  58.  
  59. Requisite Junk:
  60. Marathon is a trademark of Bungie and we all love them for sacrificing a substantial chunk of their youth to make it.  They are not responsible for this editor or the havoc that can be wreaked by using it.  Please don't bug them with questions about it and please make sure you pay for your copy of Marathon.   Finally, Mia can be distributed freely with this documentation file.  We offer no guarantees and we're too busy wasting our youth playing marathon to care.
  61.  
  62. A Note About Defaults:
  63. People ask why Mia has no 'defaults'.  Mia does have defaults.  Mia has 'Instant Defaults'; whatever the currently selected (or last selected) object, side or polygon is determines what the next one created will be like. 
  64.  
  65. Overview:
  66. Mia is a complete, full-featured, and easy to use editor that lets you create and edit Marathon maps.  It uses the polygon as its base unit, freeing you from messing with points and lines. 
  67.  
  68. When you start up Mia there are several palettes on the screen.  The first is the draw tools, and the second is for editing level info.  More palettes are available in the "Windows" menu.  This menu can be used to hide and show palettes.
  69.  
  70. Files and the Level List:
  71. Opening a file will bring up a window with a list of all of the levels.  You can have any number of map files open at the same time.  You can create a new Map file by choosing the New menu item in the File menu.  Create a new level by choosing 'New Level' from the edit menu.  You can select a level in one map file level list, choose Copy from the Edit Menu and then go to another map file level list and choose Paste to add it to it.  This can be used to make small Map files with just the levels that you change.
  72.  
  73. In a level list, you can double click on a level name to bring up an editor for this level.  Note that you can have multiple level editors open at the same time (the only limit is memory).  Editing levels is described below.
  74.  
  75. Changes to levels are not saved until  you choose the save menu item.  All changes are held in memory until this time. (Which means you can run out of memory by opening, editing, and keeping the changes to many levels at once.)
  76.  
  77. IMPORTANT! READ THIS NEXT SECTION CAREFULLY!
  78. The Tool Palette:
  79. The tool palette consiste of 5 tools:
  80. 1) The selection and dragging tool
  81.             This tool lets you select, move, and reshape polygons, vertices, and objects.
  82.             You can select polygons that are underneath other polygons by command-clicking.
  83.             You can snap polygon vertices together by holding down the option key while dragging a vertex.
  84.             (You can also use this feature to reduce the number of vertices of a polygon)
  85.             You can disconnect polygon vertices by holding control while dragging a vertex.
  86.             (You can also use this feature to add vertices to a polygon)
  87.             You can disconnect polygons by holding control while dragging the polygon.
  88. 2) The object placement tool
  89.             This tool lets you place objects on the map, eg: weapons, aliens, player positions etc.
  90. 3) The object deletion tool
  91.             This tool deletes objects.
  92. 4) The polygon creation tool
  93.             This tool lets you create polygons.
  94.             Click to position the center of the polygon, then drag to set its size and rotation.
  95.             Press a number key while dragging to set the number of vertices.
  96.             Press and hold the shift key to move the polygon while creating it.
  97. 5) The polygon deletion tool
  98.             This tool deletes the polygon you click in.
  99.  
  100. Map Editing:
  101. You can either create a new level or open a level.  A new level you will give you a blank map.  When you open a level, an editor will appear which displays the points, lines, polygons, and object locations that make up the level.  The grid menu at the top allows you to zoom in and out.  The view menu allows you to specify what type of things are displayed.  In addition there is a level info window (described below) that lets you edit the characteristics of the level.
  102.  
  103. You can manipulate objects and polygons using the selection and dragging tool (see above).  Click on a polygon to to select it.  When a polygon is selected the Polygon window is updated to display information on the polygon.  Similarly for Objects and for Sides.  More on each of these three in their respective sections below.  You can use the selection and dragging tool to drag around objects and polygons.  You can also move around vertices.  Note that Marathon cannot handle polygons which have internal angles which are too small.  If they are too small, less than around 15 degrees, then problems will occur when you try to walk into that corner. 
  104.  
  105. You can add polygons to a map by using the polygon creation tool.  Click on this tool to select it.   When you mousedown on the map you will begin drawing a polygon centered where you moused down.   By default it will draw a square, but while the mouse is down you can type any number from 3 through 8 to make a polygon of that number of sides.  Move the mouse around to rotate the polygon.  Hold the shift key and move the mouse around and you will move the center of the polygon.  When you are happy, let up the mouse button to create the polygon.
  106.  
  107. Once a polygon is created, you can hook it up to other polygons by using the selection and dragging tool and OPTION dragging the vertex of one polygon to a vertex of another.  This means that you hold down the option key and mousedown and drag a vertex and let up the mouse button when you are over another vertex.  Note that both polygons will share this vertex so that dragging it will now affect both.  Note also that you can only option drag a vertex and not a whole polygon.
  108.  
  109. You can disconnect a polygon or a vertex by CONTROL dragging it.  For example you can tear out a polygon in the middle of a room by holding down the control key and then mousing down on a polygon and dragging it off to the side of the map.  Note the walls will be updated to reflect this.  (But not the sides.  See the below section on MAGIC for a discussion on how to automatically create the appropriate sides for your map.)
  110.  
  111. You can drag object locations around from polygon to polygon.  Trying to use a map that has object locations that are not inside of polygons is dangerous.   Don't do it.  More on object locations below.
  112.  
  113. A final note, every time you create a new object, polygon or side in Mia, it defaults all of their parameters to the last edited object, polygon or side respectively.  For example, if you are making a room with a tall ceiling, you should first draw a single polygon and set the ceiling height and it's textures.  The subsequent polygons you make will all have that ceiling height and textures by default.  Similarly for objects and sides.  
  114.  
  115. Objects, The Object Window and Object Locations:
  116. Marathon follows an interesting, if complex, scheme for dealing with putting objects on a level.  In Marathon, objects are anything that is rendered as sprites.  They can be weapons, ammunition, monsters, inanimate objects (like barrels), goals (the sites marked on maps in terminals), and player locations.  All are treated the same in terms of how these objects are placed on a map.  There are object locations and there is object placement information.
  117.  
  118. First, object locations.  These are the small boxes which show up on the map.  Object locations specify potential places for objects to appear.  Each of these object locations has a type.  This type can be specified by clicking on an object location on the map and using the object location editing window.  You can drag these locations around the map.
  119.  
  120. Second, placement information.  This specifies how many objects of a particular type can appear, where they will appear, and how often they will appear.  This information can be specified in the object placement window.   The first and most important item in the window is the random checkbox.  If this is not checked, then objects will only show up in their specified object locations.  If the random box  is checked, any new objects which are generated (to replenish the old ones) will be placed randomly throughout the map.
  121.  
  122. How does Marathon decide when and how many objects to place?  This is done using the five numbers listed in the fields of the object placement window.  First there is the Initial # field.  This specifies the number of objects of that type which are placed on the level at startup.  If they are being placed randomly, this number will automatically be placed.  If they are not being placed randomly, they will be put into their locations.
  123.  
  124. The next fields for the object are  the minimum and maximum.  This specifies the min and max number of objects of that type which will be available on a level at any given time.  Note that this means on the ground or in the hands of a player.  Thus if the maximum number of flamethrowers is 1 and a player has picked it up, another will not appear until that player is killed.  
  125.  
  126. The final two fields Rand # and freq.  Rand # specifies the maximum number of times a new object will appear to replenish the object and the frequency the object will be replenished.   If this is set to 0, no more of this thing can occur on the map  after the initial ones have been eliminated. If it is some positive number, then there is a possibility (based on the other settings) that some may occur, but the total number that will ever appear (not counting the init ones) will never exceed this.  If it is set to -1, then there is no limit on how many could appear.  The freq field specifies the chance that the object will reappear each time marathon checks (the frequency of this is unknown). Thus it simply controls how quickly another one might appear if it is allowed by the other settings.  A high number means quickly. The range is 0-65535.
  127.  
  128. Note, typing stupid values into these fields could result in weird behavior or a crash.   Be careful.
  129.  
  130. All of this might seem a bit confusing, but take a look at some simple examples:
  131.  
  132. Example #1:
  133. Bob decides he wants to spice up his sex life, so he buys a...wait, I mean Bob decides he wants to spice up his network Marathon game, so he edits Waldo World Arena, and changes one of the grenade magazines into a juggernaut.  Then he saves the map and plays. Then he yells and sends me nasty email because no juggernaut appears on the map. What was Bob’s mistake? He forgot to edit the placement information for juggernauts to indicate that at least 1 juggernaut was allowed to exist on this level. He edits the level again, this time changing the ‘init’ field of the juggernaut placement information to 1. Now he saves the map and plays. Bliss.
  134.  
  135. Example #2:
  136. A different (and smarter) Bob decides he wants to add some troopers to Waldo World Arena.  He wants one to stand in front of each of the four doors, and three more to be placed randomly. He wants there to be at least one on the map at all times, but never more than seven. He also wants the total number of troopers that will ever appear to be 20. (ie: after 20 have been killed, no more will appear) What does he do? He places four objects on the map where he wants them, setting their types to ‘trooper’. Then he edits the trooper placement information. He set the initial # field to 7, sets the min # field to 1, sets the max # field to 7, sets the rand # field to 20, and checks the random location checkbox. Then he sets the frequency field to, oh, say 32767, so that they will take a short while to appear after dying.
  137.  
  138. The Level Info Window
  139. This window shows all the level related information.  This includes the Level name which can be any text of up to 64 characters.  There is a popup for the environment code.  The environment code specifies which texture set (both for walls and for control panels) the level uses.  Note that you can take an existing level and switch among these codes and your level will be updated to use the new set of textures.  Two warnings:  It turns out that the Alien Environment  has two more wall textures and two less control panels so switching between  the marathon environments and the alien environment is not guaranteed to work.  Secondly the textures in each of the environments don't match up nicely, and thus you could end up with a map with the door texture mapped on the floors and a platform textured mapped for outer space.  It's fun to try though.
  140.  
  141. The Level Info window also shows which physics model to use (this should only ever be 1 as that is all that is included in the app, oh well).  There is also a field for what number music track should be played in the background.  The next set of check boxes specify what type of level it is, be it single player, multi player competition (shows up in the gathering menu), or multi player cooperative (which currently does what???)
  142.  
  143. The Objective checks should be self explanatory.  The special checks do the following.  Vacuum levels deplete oxygen and only plasma guns work.   Magnetic messes up the radar.  Rebellion sets the compilers against the Pfhor.  Low gravity makes everything, including projectiles, drop much more slowly, as you would expect.
  144.  
  145. Platform Window
  146. The platform window lets you edit the properties of existing platforms.  Platform records are created/destroyed automatically for you whenever you change the type of a polygon to 'platform'.  In addition, the platform window will jump to that record.  There are a million checkboxes that determine platform behavior, so you're going to have to experiment.
  147. There is a one-to-one correspondence between platform records and polygons.
  148. Important Note: the 'index' field of the polygon record is _not_ used when it is of type 'platform'.  Platforms refer to polygons, not the other way around, as previously believed.
  149.  
  150. Light Window
  151. The light window does what you might expect, letting you add/remove/edit lights.  Make a light with the properties you like, then type that index into some polygon floor and ceiling light fields.  More than one polygon can have the same light.  As a convenience, Mia automatically creates a default light source (normal and bright) if you create a new level, because if one doesn't exist and you forget to make one Marathon crashes.  Feel free to change this default light, but don't delete all your lights and expect it to run!
  152.  
  153. The Light types work as follows:
  154. • Normal: Always at minimum light level.  Turns on and off instantly.
  155. • Rheostat: Always at minimum light level.  Turns on and off slowly.
  156. • Flourescent: Always at minimum light level.  Turns on and off flickering.
  157. • Strobes: Strobes up and down from minimum to maximum.  Turns on and off instantly.
  158. • Flicker: Randomly chooses a value minimum to maximum, changing based on the period.  Turns on and off instantly.
  159. • Pulsates: intensity=(max-min)/2+(max-min)*sin(phase)/2.  Turns on and off instantly.
  160. • Annoying: Flickers in a rapid and disgusting manner.  Turns on and off instantly.
  161. • Energy Efficient: Acts like rheostat, except every 30 seconds checks if someone is in the light source and if not turns it off.
  162.  
  163. Polygon Window
  164. This window allows you to edit aspects of the polygon.  The first thing is the popup that lets you choose what type of polygon it is.  The options are fairly self explanatory.  If it is a polygon that affects a platform or a light, then the ref# field to the right of the popup can be used to specify the polygon or light source.  If you make the polygon a teleporter, then the ref# specifies which polygon you are teleporting too.  (A polygon's number is displayed in the upper left hand corner of the polygon window).
  165.  
  166. The other options allow you to edit the floor and ceiling.  You can select the textures used from the pop-up menu.  The offset number is used to shift the texture around on the wall to get it to line up with the textures on the adjacent walls (someday I wouldlike to make this automatic).  The transfer mode determines what funky effect happens to the texture as it is mapped on the floor or ceiling. 
  167.  
  168. Explanation of Walls and Sides
  169. The Big Caveat: sides are really complicated and a bit weird. 
  170.  
  171. Every polygon is made up of lines.  Each of those lines is potentially a wall.   Put another way, the boundary lines of a polygon are all potentially "walls".  In this document we will call all lines/boundaries "walls" whether or not they are visible.  Walls may have zero, one or two side objects associated with them.  For example, the faint gray lines on the map are walls that are not solid and are invisible.  The black lines are walls which are solid.   Any of these walls may have a side associated with it.  Sides specify which textures are drawn and how they are drawn on that side of the wall.  
  172.  
  173. For example, if we have a step where the floor of one polygon is lower than the floor of an adjacent polygon, we have to add a side to tell marathon what to draw on the vertical part of the step.   
  174.  
  175. To select a side you must select a polygon and then click on one of its walls.  You specify a side from the polygon it will be viewed from.  In other words, all sides are the sides you would see if you were standing inside the polygon.  In our step example, you would select the lower polygon and choose the wall between it and the higher polygon.  To add, remove, and edit sides you use the side window described below.
  176.  
  177. Side Window
  178. The 'Transparent' checkbox controls the visibility of all the sides this wall may have (zero, one or two).
  179.  
  180. The 'Side' checkbox indicates whether or not a side exists for the selected wall facing the inside of the selected polygon.  Checking and unchecking this box adds and removes a side.  The side that is created will have all the same properties as the last side you made or edited.
  181.  
  182. The popup menu lets you choose the type of side.  "Full" means that the texture is drawn fully from the floor to the ceiling regardless of whether or not the adjacent polygon should be visible.  "Low" means to draw from the floor of the current polygon up to the floor of the adjacent polygon.  This is used when the floor of the selected polygon is lower then the floor of the adjacent polygon that shares the wall (like in our step example).   "High" means to draw  from the ceiling of the current polygon down to the ceiling of the adjacent polygon.  This is used when the ceiling of the selected polygon is higher then the ceiling of the adjacent polygon that shares the wall.   Split is used when you need both "Low" and "High", that is the selected polygon's floor is lower and ceiling is higher than the adjacent polygon.   "Composite" is used to overlay two textures but it doesn't seem to work so avoid it for now.
  183.  
  184. There are potentially two textures which can be associated to a given side.   The primary texture is what is used in sides of the type "full", "low" and "high".  When a side is "Split" it uses the primary texture for the "high" part and the secondary texture for the "low" part.  Note that if you choose split, you have to be careful to specify a secondary texture. 
  185.  
  186. Finally there is a checkbox for whether or not there is a 'Switch'.  If a switch exists you can choose the texture used as well as the type of panel.  There is an index field for certain types of switches (like light switches) to specify which light source, polygon, etc. is affected by the panel.  We recommend only messing with existing panels for now.
  187.  
  188. Warnings:
  189. •Not all the objects and monsters that are available in Mia’s menus have definitions in the shapes and physics files. This means that some monsters don’t actually ‘exist’. If you try to place them on the map, you will likely cause a crash.
  190. •Remember to make sure all objects are inside polygons.
  191. •To place objects into polygons that are ‘underneath’ other polygons, you may have to edit the poly field directly.
  192.  
  193.  
  194. PS:
  195. Dan wants to take this opportunity to tell Mia how cool she is, and to ask her not to mind that he did such an incredibly geeky thing as name a piece of software after her.
  196. PPS:
  197. Brian wishes to thank all those people that made this possible, particularly the divinely inspired people at the Sunshine corporation who invented Cheez-Its.  Thanks y'all.  Every cheez-it is a tiny packet of joy.  Also to Kristen, that most wonderful of individuals, who is the only person in the world to say that she can't play video games because her attention span is too short.